import _app from '@/app/index.js';
import { setupAjax, setupI18n } from './helper';
import { setupStore } from './store';

/**
 * 应用初始化
 * @param {*} app
 */
export function setupApp(app) {
  // 增加pinia支持
  setupStore(app);
  // ajax配置
  setupAjax(app);
  // 国际化支持
  setupI18n(app);
  // 自定义事件
  _app.onAppInit?.(app);

  return Promise.resolve();
}

/* -----------------------------系统应用生命周期------------------------------ */
export default {
  globalData: {
    ..._app.globalData,
  },
  onLaunch() {
    _app.onLaunch?.();
  },
  onShow() {
    _app.onShow?.();
  },
  onHide() {
    _app.onHide?.();
  },
  onError(error) {
    console.error(error);
    _app.onError?.();
  },
  onUnhandledRejection() {
    _app.onUnhandledRejection?.();
  },
  onPageNotFound() {
    _app.onPageNotFound?.();
  },
  onThemeChange() {
    _app.onThemeChange?.();
  },
};
